/* 
元组就是数组的变种
元组（Tuple）是固定数量的不同类型的元素的组合。

元组与集合的不同之处在于，元组中的元素类型可以是不同的，而且数量固定。元组的好处在于可以把多个元素作为一个单元传递。如果一个方法需要返回多个值，可以把这多个值作为元组返回，而不需要创建额外的类来表示。 
*/

let arr_yuanzu:[number,string,boolean] = [1,'2',true];
// arr_yuanzu.push(null);
arr_yuanzu.push(3);
arr_yuanzu[0] = 6666;

/* 
readonly 限制数组的写入还有修改元素的属性
*/
let arr_yuanzu2: readonly [number, boolean, string, undefined] = [1, true, 'sring', undefined]

// arr_yuanzu2.push(3);
// arr_yuanzu2[0] = 6666;

// 元祖的联合类型
let arr_yuanzu3: [x:number, y?:boolean] = [1]

/* 
读取元素的类型
*/

let first = typeof arr_yuanzu3[0]
console.log(first);

/* 
读取元祖的长度
*/

let arr_yuanzu4: [x: number, y: boolean] = [1, true]

let arr_yuanzu4_length = arr_yuanzu4['length']
console.log(arr_yuanzu4_length, "长度");


/* 
实际应用场景
表头信息
*/

let arr_yuanzu5: [string, string, number][] = [
  ['小李', '女', 18],
  ['小李', '女', 18],
  ['小李', '女', 18],
  ['小李', '女', 18],
  ['小李', '女', 18]
]